Customized user interface based on user profile information

ABSTRACT

A user interface including one or more references to content is customized. Several user profiles are provided from which a user may be associated. Each user profile includes user profile information. The user profile associated with a user to whom a user interface will be provided is accessed. A user interface is configured for the user, based at least in part upon the user profile accessed as being associated with the user. Access to content is enabled based on user manipulation of the configured user interface.

CLAIM OF PRIORITY

[0001] This application claims priority from U.S. application Ser. No.09/224,211, filed Dec. 30, 1998, which is incorporated by reference.

TECHNICAL FIELD

[0002] The following description relates to customized user interfaces,for example, graphical user interfaces (GUIs).

BACKGROUND

[0003] A GUI can include a wide variety of user interface controls thatrespond to user manipulation. For example, referring to FIG. 1, aMicrosoft Word™ word processing application GUI 100 includes a toolbar102 that presents a row of user input controls 102 a-102 j positioned ina substantially regular pattern. The controls enable a user to quicklyperform common tasks such as opening 102 b, saving 102 c, and printing102 d a document 106. By collecting controls into an easily accessiblearea of the GUI 100, the toolbar 102 enables a user to quickly find andaccess a particular control whenever the user wants the application toperform a task associated with the selected control.

[0004] The toolbar 102 can include button controls (buttons) 102 a-102 gthat feature pictorial representations of common tasks. When activatedby a user (e.g., clicked on), a button 102 a-102 g responds by causing apredetermined application function to occur. For example, button 102 cincludes a picture of a diskette. When a user clicks on the picture of adiskette 102 c or anywhere within a bounding region that defines thebutton 102 c, the word processor saves a document 106.

[0005] The toolbar 102 can include controls other than buttons 102 a-102g. For example, as shown, the toolbar 102 includes a list control 102 hand a pull-down menu control 102 i. Referring also to FIG. 2, whenactivated by a user, the pull-down menu control 102 i presents a list104 of menu choices 104 a-104 c.

[0006] A control can be enabled so as to be responsive to user input ordisabled so as to be unresponsive to user input. A control can bedisplayed differently if disabled. For example, because the user has notselected any document text 106, the button 102 f corresponding to a“cut” function is displayed in a muted gray-scale, indicating that the“cut” function is presently unavailable. As shown, although displayeddifferently, a disabled control (e.g., 102 f) nevertheless occupies itsnormal amount of space on the GUI screen 100.

[0007] The toolbar 102 can remain visible while a user performs otheractions such as working on the document 106. Additionally, a user canmove the toolbar 102 to different regions of a screen 100. MicrosoftWord™ also allows a user to tailor the controls included in a toolbar102 based on personal preference. For example, a user who does not havea printer can remove the print button 102 f from the toolbar 102.

SUMMARY

[0008] In one general aspect, customizing a user interface includesproviding several user profiles from which a user may be associated.Each user profile includes user profile information. The user profileassociated with a user to whom a user interface will be provided isaccessed, and a user interface is configured for the user based at leastin part upon the user profile accessed as being associated with theuser. The user interface includes one or more references to content.Access to content is enabled based on user manipulation to the configureuser interface.

[0009] Implementations may include one or more of the followingfeatures. The user profile information may include age or a level ofmaturity. The level of maturity may include a child maturity level, ayoung teen maturity level, a mature teen maturity level, and an adultmaturity level. The level of maturity may be selected based uponconfiguration data associated with an identifier of the user. The userprofile information may be supplied by a master user. In oneimplementation, the user is also the master user. The user profile maybe stored and/or updated. The user interface may also be updated inresponse to updating of the user profile.

[0010] The user interface may be configured by a host system, and accessto content may be enabled by a host system.

[0011] In one implementation, the user interface may be configured bypopulating the user interface with pre-designated references to contentbased upon the user profile. Access to content may be enabled byblocking access to other than the pre-designated references. Enablingaccess to content may include customizing a set of user interfacecontrols displayed to the user. Enabling access to content may alsoinclude customizing a pointer associated with a user interface control.In one implementation, the appearance of the user interface control isnot changed. A user interface control of a first user may be convertedinto a user interface control of a second user, where the first user isassociated with a first user profile and the second user is associatedwith a second user profile.

[0012] The user interface may be automatically configured, and may beconfigured in response to a user action. In one implementation, the userinterface may be configured in anticipation of user navigation to theuser interface. In another implementation, the user interface may beconfigured in response to user navigation to the user interface.

[0013] In another general aspect, several attribute types are providedfrom which a user may be associated. An attribute type associated with auser to whom a user interface will be provided is accessed. A first userinterface is rendered, where the first user interface is available fordisplay to a first user having a first attribute type accessed as beingassociated with the first user. A second user interface is rendered,where the second user interface is available for display to a seconduser having a second attribute type accessed as being associated withthe second user.

[0014] Implementations may include one or more of the followingfeatures. The attribute type may be indicative of an age or maturitylevel. For example, the first attribute type may be indicative of anadult maturity level and the second attribute type may be indicative ofa child maturity level. The child maturity level may include a matureteen, a teen, and a preteen.

[0015] In another general aspect, several user characteristics fromwhich a user may be associated are provided. A user characteristicassociated with a user to whom a user interface will be provided isaccessed. A user interface is provided based at least in part upon theuser characteristic accessed as being associated with the user, wherethe user interface includes at least one control. Access to informationor services is provided based on the user characteristic.

[0016] Implementations may include one or more of the followingfeatures. The user characteristic may include age or a level ofmaturity.

[0017] In another general aspect, regulating user interface controlsincludes identifying a grouping from among multiple groupings andproviding a set of user interface controls corresponding to theidentified grouping.

[0018] Implementations may include one or more of the followingfeatures. The set of user interface controls may be displayed as a bankof controls. The controls can include buttons, pull-down menu controls,and other user interface controls. The user interface controls can beprovided by changing an existing collection of user interface controls(e.g., adding or removing user interface controls in a default set ofcontrols).

[0019] The groupings may be based on user maturity. For example,different groupings may be for children and/or teenagers. The groupingsmay also be used to identify access levels to network service providerservices such as e-mail, chat rooms, and Internet browsing.

[0020] Identifying a grouping may include receiving user information anddetermining the grouping based on the received information. Such userinformation may be received through a network connection. Theinformation may include a user identifier. The user identifier may beassociated with a grouping by storing the associated grouping in adatabase. The grouping can be selected from a list or by identifyinguser characteristics such as a user's age.

[0021] In another general aspect, producing a toolbar having userinterface controls includes associating a grouping corresponding to amaturity level with a user identifier by receiving multiple groupings,receiving a user identifier over a network connection, determining thegrouping associated with the user identifier, and using the determinedgrouping to produce a toolbar having user interface controls. The userinterface controls included in the toolbar are determined based on thegrouping associated with the user identifier.

[0022] In yet another general aspect, a user interface is customized byaccessing user profile information for a user of a computer system,configuring a user interface control, including one or more referencesto content, based at least in part upon the user profile information,and regulating access to content based on the user profile information.Implementations may include one or more of the following features. Theuser profile information may include age, or a level of maturity. Theuser interface control may be configured automatically or in response toa user. Access to content may be enabled by blocking access toinformation other than the pre-designated references. The user interfacecontrol may be populated with pre-designated references to content basedupon the user profile information. User profile information may besupplied, for example, by a master user. The user profile informationmay be stored and/or updated. Also, the user interface control may beupdated, for example, when the user profile information is updated.

[0023] Advantages may include one or more of the following. For example,by customizing the controls made available by a toolbar based on auser's group, different users can enjoy the benefits of a toolbarwithout the clutter of permanently disabled controls or controls notfrequently accessed. When the groups correspond to different levels ofmaturity, an application can provide youngsters with a toolbar thatlimits access to certain functions, for example, by omitting buttonsrelating to forbidden functions, without calling these limitations to achild's attention. Additionally, a simplified toolbar—for example, atoolbar that includes buttons different than those available on afull-access toolbar—can direct a child's attention to age-appropriatefeatures that a child is likely to enjoy.

[0024] When a network service provider furnishes group specifictoolbars, adults can place a child in front of a networked computerwithout worrying that the child will stumble onto material intended formature audiences. At the same time, the child is not frustrated orconfused by interacting with a toolbar featuring a number of disabledcontrols.

[0025] The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

[0026]FIGS. 1 and 2 are screenshots of a graphical user interface (GUI).

[0027]FIG. 3 is a flow chart of a procedure for producing a bank ofcontrols based on an identified access level.

[0028]FIGS. 4A and 4B are screenshots of a GUI that can define an accesslevel for a user.

[0029]FIGS. 5A and 5B are screenshots of toolbars that have differentcontrols based on the different access-levels of different users.

[0030]FIG. 6 is a diagram of a system for producing a bank of controlsbased on an identified access level.

[0031]FIG. 7 is a diagram of a computer platform.

[0032]FIG. 8 is a flow chart of a procedure for customizing a userinterface.

[0033]FIGS. 9A, 9B, 10A, 10B, and 11-12 are screenshots of UIs that maybe used in the procedure of FIG. 8.

[0034] Like reference numbers and designations in the various drawingsindicate like elements.

DETAILED DESCRIPTION

[0035] Referring to FIG. 3, producing a bank of user interface controlsfor a graphical user interface (GUI) includes identifying a user'sgrouping (110) from a set of different groupings and including controlsin the bank of controls (112) based on the identified grouping.Identifying a grouping (110) can be achieved based on any combination ofa number of factors. For example, a grouping can be determined based oninformation describing user characteristics (e.g., age) or by usingenvironmental information (e.g., when an application is launched). Thegrouping, or user profile information, may include a user-definedgrouping or a pre-defined grouping which the user may opt to join or towhich the user may be associated without input from the user. In oneimplementation, the user may be associated with more than one grouping.

[0036] This technique of producing a bank of user interface controlsprovides a user with a concentrated collection of controls tailored to auser's grouping. Thus, users belonging to a group havingrestricted-access do not experience the problem of toolbar clutter thatresults from permanently disabled controls reserved for more privilegedusers . Additionally, functions that a certain class of user (e.g.,child, elderly, mentally challenged) are likely to use more frequentlycan be presented more conspicuously (e.g., as a toolbar button insteadof as a menu choice). In one implementation, the user is assigned to aclass by, for example, a master user. In another implementation, theuser self-selects a class from among several available classes. Forinstance, the user may choose to belong to a “teen” class of user ratherthan a “child” or “adult” class of user. In yet another implementation,the user may be assigned to or may choose to belong to more than oneclass. For example, the user may choose to be assigned to a “teen” classand a “sports fan” class, and a user interface would then be configuredas appropriate to a teen sports fan user.

[0037] The technique described above has a wide variety of potentialapplications. For example, network services such as e-mail and Internetaccess offer adults a wealth of information and communication options.These services, however, can expose teenagers and children to subjectmatter aimed at more mature audiences. Some inappropriate material isactively sought by young users (e.g., via the Internet) while othermaterial is inappropriately sent to young users (e.g., in chat rooms).Accordingly, one implementation employs maturity-based groupings tocustomize different toolbars for network service users of differentages.

[0038] Referring to FIG. 4A, a network service provider GUI 114 caninclude one or more toolbars 118. Tailoring a toolbar 118 to include aspecific set of controls for users of different ages can help protectteenagers and younger children from inappropriate material and simplifyuse by eliminating otherwise disabled functions from representation on aGUI screen 114. This tailoring also can steer younger users toward areasof potential interest.

[0039] In one implementation, a user's grouping is defined by a “master”user such as an adult having an account with a network service provider,or a system administrator of the network service provider. The masteruser may select the user's grouping from among a set of availablegroupings, the master user may modify or otherwise customize anavailable grouping, or the master user may create a new grouping toassociate with the user. As shown, an adult can create an account for achild by selecting a screen name (i.e., a user identifier) 116.Referring to FIG. 4B, the adult then can select a grouping (e.g., 18+120 a, mature teen 120 b, young teen 120 c, or kids 120 d) from a listof available groupings to associate the selected grouping with the useridentifier. Different groupings also grant different levels of access tothe Internet (e.g., browsing, newsgroups, FTP (file transfer protocol)downloads), e-mail, chat sessions, and other network services (e.g.,account management). Network service software on a client or a host canuse a selected grouping (e.g., as defined by a master user) to provide atoolbar tailored to services available to the users of the selectedgrouping. Selecting a grouping from a list of available groupingsenables an adult to quickly set up accounts for different youngstersthat both provide appropriate limitations on access and provide acustomized user interface. The groupings shown are merely illustrative.For example, in another implementation, the network service softwareincludes only two groupings: “Internet access” and “no Internet access.”In another implementation, the user may self-select from the list ofavailable groupings, modify an existing grouping, or may create a newgrouping.

[0040] Referring to FIGS. 5A-5D, a toolbar 118 produced for a useridentified as having an “18+” grouping (i.e., an adult or general accessuser) includes controls different from a toolbar 124 produced for a useridentified as belonging to a “kids” group. As shown, both toolbars 118,124 share a number of common controls such as controls for handlinge-mail 118 a-118 c, 124 a-124 c. Additionally, both toolbars 118, 124share general characteristics. For example, buttons 118 a, 118 b, 118k-118 m and pull-down menus 118 c, 118 e-118 j both include pictures(e.g., a printer) and text (e.g., “Print”)describing the function(s)accessible with a control. A user can reduce the amount of screen spacethat a toolbar 118, 124 occupies by configuring the toolbar 118, 124 toonly display the text description (not shown).

[0041] As shown in FIG. 5A, adult toolbar 118 includes a pull-down menucontrol 118 i labeled “Channels” that lists menu choices 122corresponding to different categories of information that a user canaccess. Some of the information included in these categories may beinappropriate for young children (e.g., magazine subscriptions that canbe ordered using a “bill me later” option). As shown, the “Channels”pull-down menu 122 features a “Kids Only” menu choice 123 near the endof the listed choices 122.

[0042] The kids toolbar 124 does not include a number of controls 118j-118 m included in the adult toolbar 118 (e.g., controls for accessingstock quote information and for making purchases). Additionally, thekids toolbar 124 does not include the “Channels” menu control 118 iincluded in the adult toolbar 118. The kids toolbar 124 instead includesa “Kids Only” button 124 i that presents a “Kids Only” window 126 whenactivated. Providing access to the “Kids Only” window 126 as a prominentbutton 124 i in the kids toolbar 124, instead of being buried in a listof choices provided by a pull-down menu control 118 i, increases thelikelihood a young child will navigate to the window 126. Thus, a menuchoice available to an adult may be converted into a control button fora child's easy access.

[0043] Referring to FIG. 5B, the adult toolbar 118 also includes a“Favorites” pull-down menu control 118 g that contains references tocontent frequently accessed by an adult. Many of the listed entries, forexample, merchandise available for purchase on-line or bookmarkedInternet sites, may be inappropriate for children. The kid's toolbar 124does not include the “Favorites” pull-down menu control 118 g, butinstead offers a “Shortcuts” pull-down menu control 124 g that listschoices that direct a child to areas of special interest to kids (e.g.,school project ideas).

[0044] Referring to FIG. 6, in one implementation, a host 144 uses atable 154 to store the grouping assigned to a user identifier (ID). Itshould be understood that the host 144 may not be a single computer, buta collection of networked computers. A client, such as client 140 a,executing client software 141 (e.g., America Online client software)initializes a network session by sending a message including a useridentifier 142 to the host 144. The message may also include otherinformation such as the client 140 a platform (e.g., a PC or Macintoshcomputer). Software instructions 146 executing on the host 144 use thetable 154 to determine the grouping corresponding to the received userID 142 (150) and identify an associated set of toolbar controls based onthe determined access level (152). The host 144 can transmit the toolbarinformation to the client 140 a, which will use the information todisplay a toolbar having the designated set of toolbar controls.

[0045] The host software 146 can prepare toolbar information in a numberof ways. For example, the software 146 may begin with a default set ofcontrols (e.g., the controls included in the adult toolbar) and modifythe controls included in the toolbar transmitted to the client 140 a byeliminating and/or adding controls to the default set. The default setof controls can reside on either the client 140 a or the host 144. Thecontrols may be prepared at any time, including preparing the controlsin anticipation of user navigation to the user interface or in responseto user navigation to the user interface.

[0046] The software 146 can also modify a control in the default set ofcontrols to produce a different control. For example, the software 146can produce a different pull-down menu control by removing or addingmenu choices from an existing pull-down menu control. Additionally, anew button can be produced by modifying an existing button to have adifferent picture, descriptive text, and/or preprogrammed function. Inanother implementation, controls may be modified without modification ofthe user interface. For example, a pointer or a link associated with acontrol may be modified without modification of the appearance of thecontrol itself. As a further example, a control that contains a pointeror a link to content suitable for an adult may be changed to a pointeror a link to content suitable for a child, without affecting theappearance of the control. Thus, a child user will be able to navigateto age appropriate content even though the user interface appears thesame as a user interface configured for an adult user.

[0047] The system shown in FIG. 6 is merely illustrative. A wide numberof different systems can also produce a toolbar customized for differentgroupings. For example, user information (e.g., user ID and grouping)can be stored on the client 140 a instead of the host 144. Thisconfiguration, while potentially faster than the system shown in FIG. 6,may run a risk that a clever youngster may figure out how to alter userinformation stored at the client and thereby obtain access to networkservices that may be inappropriate. In contrast, storing toolbarcustomization information at the host helps prevent against theunauthorized viewing of or access to the customization information.Other implementations distribute system functions between the host 144and clients 140 a-140 n differently. Further, in some implementations,the entire system resides on a single computer instead of a host 144 andclient 140 a.

[0048] Referring to FIG. 7, a computer platform 160 suitable forexecuting instructions for producing a bank of controls based on anidentified access level 176 includes a display 162, a keyboard 164, apointing device 166 such as a mouse, and a digital computer 168. Thedigital computer 168 includes memory 172, a processor 174, a massstorage device 170 a, and other customary components such as a memorybus and peripheral bus (not shown). The platform 160 may further includea network connection 180.

[0049] Mass storage device 170 a can store the instructions 176 forproducing a bank of controls and instructions for an operating system178 (e.g., Microsoft Windows 98™). The instructions 176 may betransferred to memory 172 and processor 174 in the course of operation.The instructions cause the display 162 to display images of a graphicaluser interface. The instructions 176 can be stored on a variety of massstorage devices such as a floppy disk 170 b, CD-ROM 170 c, or PROM (notshown).

[0050] In one implementation, a “Favorite Places” menu control may bemodified based on user profile information to contain links to contentappropriate or interesting to the user. The modification may be made atany time, including during installation of client software, beforeexecution of client software, during execution of client software, orafter execution of client software. The modification may be madeautomatically, or in response to an action by a master user or by theuser. For example, the modification may be made in anticipation of usernavigation to the user interface, or in response to user navigation tothe user interface. Also, the modification may include populating the“Favorite Places” menu control with predetermined links based upon theuser profile information.

[0051] The user profile information may include information that isuseful in configuring a user interface for the user, and may includeinformation such as the age or maturity level of the user. The userprofile information may be input or modified by a master user, and maybe, for example, supplied during account setup for the user. In anotherimplementation, the user provides or modifies the user profileinformation. In yet another implementation, a set of pre-defined userprofiles may be made available, and one or more profile may beassociated with the user. For example, a master user may select aprofile from among the available profiles to associate with the user, orthe user may self-select a profile.

[0052] For example, in one implementation, a parent or other adult mayact as a master user to set up an account for a child user. During theaccount setup, the master user may supply user profile information forthe child user that indicates that the child user is a child of acertain age or age group. For example, the master user may supply userprofile information indicating that the child user is a child of age 12and under. A “Favorite Places” menu control may be prepared based uponthe user profile information indicating that the user is a child. Forinstance, when the user profile information indicates that the user is achild, a “Favorite Places” menu control may be prepared usingpre-designated, age appropriate, links to populate the menu control. Inanother implementation, the user self-selects user profile informationindicating, for example, that the user is a child of age 12 and under.The menu control may be populated at any time, including in anticipationof user navigation to the menu control or in response to user navigationto the menu control. A parental controls feature may be used to limitthe default “Favorite Places” links to content used to populate the menucontrol. Also, in one implementation, the child user may be blocked fromadding links other than those on the pre-designated list. The “FavoritePlaces” menu control may be updated periodically by, for example,updating the links on the pre-designated list. The menu control may beupdated at any time, including in anticipation of user navigation to themenu control or in response to user navigation to the menu control.

[0053] Referring to FIG. 8, a user 802 a, a master user 802 b, and ahost 804 interact according to a procedure 800 to customize a userinterface. The procedure 800 may be implemented by any type of hardware,software, device, computer, computer system, equipment, component,program, application, code, storage medium, or propagated signal. In oneimplementation, the master user 802 b is separate from the user 802 a.In another implementation, the master user 802 b is also the user 802 a.

[0054] Examples of elements shown in FIG. 8 (e.g., user 802 a, masteruser 802 b, and host 804) are broadly described above with respect toFIGS. 6 and 7. In particular, the user 802 a and the master user 802 btypically have attributes comparable to those described with respect toclient devices 140 a, 140 b, and 140 n and/or computer platform 160. Thehost 804 typically has attributes comparable to those described abovewith respect to host device 144. Furthermore, although not shown in FIG.8, the user 802 a, the master user 802 b, and/or the host 804 may bedirectly or indirectly interconnected through known or describeddelivery networks, examples of which are described with respect tonetwork connection 180.

[0055] The procedure 800 generally involves customizing a user interfacebased upon user profile information. Examples of user profileinformation include the age or maturity level of the user. In oneimplementation, a set of pre-defined user profiles is made available,and one or more profiles is associated with the user. In anotherimplementation, a user profile is modified or created to be associatedwith the user. The user profile information may be unique to the user,or may be common to several users of the computer system. The userinterface customized according to the user profile information maycontain one or more references to content, such as, for example, acollection of favorite links to frequently accessed content.

[0056] By regulating the references to content based on user profileinformation, age appropriate control is maintained over the contentviewed by the user. Generally, control is maintained through a masteruser, such as a parent or other adult, who is able to supply userprofile information for the user in order to appropriately tailor thelinks to content offered to the user in a “Favorite Places” menucontrol. The master user may select from among one or more pre-defineduser profiles to associate with the user, or may modify or create aprofile to associate with the user. Thus, flexibility is maintained byage-appropriate tailoring of links to content that may appear in the“Favorite Places” menu control.

[0057] In procedure 800, the master user 802 b and the host 804 arephysically and/or logically connected. For instance, master user 802 bmay connect to the host 804 across a network (e.g., network connection180) by supplying a user identification and password to a server of thehost 144. In general, the master user 802 b is a customer serviced bythe host 804 and typically is a parent or other adult.

[0058] The master user 802 b may send a request to the host 804 toestablish or modify an account for a user 802 a (step 805). The host 804responds to the request from the master user 802 b by requesting userprofile information from the master user 802 b (step 810). User profileinformation may include, for example, information relating to the ageand maturity level of the user, such as an age in years or an agecategory (e.g., child of age 12 and under (“Kids Only”), young teenbetween 13-15, mature teen between 16-17, and adult of 18 years andolder). The user profile information may correspond to information usedin a parental controls feature to regulate the ability of a user 802 ato access content. User profile information also may include otherattributes assigned to the user, such as, for example, personalinformation such as hobbies, interests, name and/or address.

[0059] Requesting user profile information may include presenting a userinterface (“UI”)to the master user 802 b. The UI may be presented as aWeb page having text, images, audio, video, and/or any other type ofcontent. In one implementation, shown in FIG. 4B, a UI 114 includes userprofile information about the user 802 a, one example of which is theuser's age group 120 a, 120 b, 120 c, 120 d. As shown in FIG. 4A, a UI114 may include a screen name 116 provided by a master user 802 b duringthe process of setting up an account for a user 802 a.

[0060] The master user 802 b supplies user profile information to thehost 804 (step 815). Supplying user profile information may includehaving a client system 140 a connect across a network 180 and supplyuser profile information to a host system 144.

[0061] The host 804 stores the user profile information for the user(step 820). The host 804 may store the user profile information in, forexample, a database 154 on the host, a memory 172 or mass storage device170 a on the client 160, 140 a, or on another suitable storage mediumand/or location.

[0062] At some later time, the user 802 a connects to the host 804 (step825). For instance, the user 802 a may connect to the host 804 across anetwork (e.g., network connection 180) by supplying a useridentification and password to a server of the host 144. In general, theuser 802 a is a customer serviced by the host 804 and typically is achild or otherwise under the supervision of the master user 802 b.

[0063] The host 804 determines the user profile information of the user802 a (step 830). Determining the user profile information may includeretrieving the user profile information of the user 802 a from a storagelocation on the host 144 or on the client 140 a. For example, the userprofile information may be retrieved from a database 154 on the host, amemory 172 or mass storage device 170 a on the client 160, 140 a, oranother suitable storage medium and/or location. Alternatively,determining the user profile may include extrapolating information fromuser activities. For example, user profile information may beextrapolated based upon content or services frequently accessed orrequested by the user. In one instance, a user profile may be modifiedto note an interest in sports based upon frequent user viewing of sportsrelated content. The profile may be further customized based upon, forexample, the user's viewing of baseball related content compared to theless frequent viewing of hockey related content.

[0064] The host 704 prepares a customized user interface control basedon the user profile information (step 835). For example, the customizeduser interface includes a “Favorite Places” menu control that containsone or more links to content customized based on the user profileinformation. In this example, the customized user interface may beprepared by populating a “Favorite Places” menu control withpre-selected links to content that the user would be interested inviewing e.g., those which are age-appropriate for the user 802 a basedupon the given user profile information. For example, if the user 802 ais an adult, the “Favorite Places” menu control may be populated withone or more links to content that would be of interest to andappropriate for an adult. Further, the user may be permitted to furthercustomize the links to content by adding or deleting one or more links.FIGS. 9A, 10A, and 11 show an implementation of a user interfacecustomized for an adult. If, on the other hand, the user 802 a is achild of age 12 or under, or has been somehow identified or designatedas a child of age 12 or under, or has been associated with an age 12 orunder account, the “Favorite Places” menu control may be populated withone or more predesignated links to content that would be of interest toand appropriate for a child of that age group. FIGS. 9B and 10B show animplementation of a user interface customized for a child of age 12 orunder, and are analogous to FIGS. 9A and 10A.

[0065] In one implementation, shown in FIG. 9A, a UI 900A for an adultuser includes a menu control dropdown button 905 labeled “Favorites”that, when selected, renders a dropdown menu 910 that includes a menuitem labeled “Favorite Places” 910 a. To display the “Favorite Places”menu control, the user 802 a clicks on the menu item 910 a orsimultaneously presses the ALT key and the underlined letter in theicon. Also, a menu button 915 labeled “My Favorites” is available as ashortcut to the menu item 910 a. When the adult user selects menu item910 a or selects menu button 915, a UI 1000A may be prepared andrendered.

[0066] As shown in FIG. 10A, a customized UI 1000A for an adult user maybe prepared by populating a designated area 1020 of the UI 1000A with alisting of links to content that are chosen automatically based upon theuser profile information associated with the user. For example, links toa user's “Favorite Places” 1025 may be prepared. One or more of thelinks to content may be shown as, for example, a link to a folder (forexample, folders 1025 a, 1025 b, 1025 c, 1025 d), where the foldercontains links to content. Also, one or more of the links to content1120 may also be shown as a direct link to the content (for example, seelink 1120 shown in FIG. 12). The adult user may be given an option to godirectly to the linked content using a button 1030, to create a new linkto content 1035, to edit a link to content 1040, to delete a link tocontent 1045, and/or save/replace a link to content 1050.

[0067] The user may open a folder, for example folder 1025 a, byclicking on the folder to display the list of links to content containedin the folder. As shown in FIG. 11, a user may open folder 1025 a “AboutAOL” to reveal a list of links to content 1120 a-1120 d, including alink to “Member Services: General Help” 1120 b. Generic entries may beprovided as default links to content, and the entries may be varied fromuser to user.

[0068] As shown in FIG. 12, a UI 1200 may display further information1230 about a link to content 1220, such as, for example, the description1230 a and Internet address 1230 b of the link. As also shown in FIG.12, a user may add or modify a link to content 1220 by providing newinformation 1230.

[0069] In comparison to FIG. 9A, FIG. 9B shows an implementation of a UI900B for a child user of age 12 or under. The UI 900B includes a menucontrol dropdown button 905 labeled “Favorites” that, when selected,renders a dropdown menu 920 that includes a menu item labeled “Kids OnlyMain” 920 a. The dropdown menu 920 includes links to age appropriatecontent. To display the “Favorite Places” menu control, the user 802 aclicks on the menu item 920 a or simultaneously presses the ALT key andthe underlined letter in the icon. Also, a menu button 925 labeled “KOFun Spots” (shown in FIG. 10B) is available as a shortcut to the menuitem 920 a. When the child user selects menu item 920 a or selects menubutton 925, a UI 1000B may be prepared and rendered.

[0070] As shown in FIG. 10B, a customized UI 1000B for a child user maybe prepared by populating a designated area 1060 of the UI 1000B with alisting of links to content that are chosen based upon the user profileinformation associated with the user. For example, links to a childuser's Kids Only Favorites 1065 may be prepared and, for children of age12 or under, or users designated as a child of age 12 or under, may befurther chosen from a preapproved list of links to content. One or moreof the links to content may be shown as a direct link to the content(for example, links 1065 a through 1065 j). The child user may beprevented from modifying the links to content (for example, see the lackof buttons in FIG. 10B corresponding to buttons 1030-1050 in FIG. 10A).

[0071] The user 802 a requests access to content listed in the “FavoritePlaces” 1020, 1060 by, for example, clicking on the link (for example,1120 b or 1065 a) in the “Favorite Places” graphical user interface1020, 1060 or by clicking on the “Go” button 1030 in the “FavoritePlaces” graphical user interface 1020 (step 840).

[0072] The host 804 responds by providing access to the desired contentappearing in the “Favorite Places” control based upon the user profileinformation (step 845). For example, the host may permit the user 802 ato have access to content listed in the “Favorite Places” graphical userinterface rather than blocking access to that content. Because the linksappearing in the “Favorite Places” graphical user interface were placedthere based on the user profile information, these links are presumed tobe authorized, appropriate, and/or desirable for the user 802 a to view.

[0073] The user 802 a may provide updated “Favorite Places” informationto the host 804 (step 850). For example, the user 802 a may seek to add,modify, or delete a link to content in the “Favorite Places” control.For example, the user may seek to add a new link to content by clickingon the “New” button 1035 in the “Favorite Places” graphical userinterface 1020. A parental controls feature may be employed to screenthe requested addition based on the user's user profile information andonly add the new link if it is permitted based on the user profileinformation. For example, if the user 802 a is designated a child of age12 years old or under, or has somehow been designated as a child of age12 or under, the user may be forbidden to add new links altogether orspecifically identified in a block list, or new links may be restrictedto add only links included or identifiable from a pre-approved list oflinks. The user 802 a may seek to modify a link by, for example,clicking on the “Edit” button 1040 in the “Favorite Places” graphicaluser interface 1020. Again, a parental controls feature may be employedto screen the requested modification based on the user's user profileinformation and only add the new link if it is permitted based on theuser profile information. The user 802 a may seek to delete a link by,for example, clicking on the “Delete” button 1045 in the “FavoritePlaces” graphical user interface 1020. Also, the user 802 a may seek tosave or replace the link by, for example, clicking of the “Save/Replace”button 1050 in the “Favorite Places” graphical user interface 1020.

[0074] The host 804 stores the updated favorite places information forthe user 802 a (step 855). The host 804 may store the updated favoriteplaces information in, for example, a database 154 on the host, a memory172 or mass storage device 170 a on the client 160, 140 a, or anothersuitable storage medium and/or location.

[0075] The user 802 a requests access to the updated content listed inthe “Favorite Places” 1020, 1060 by, for example, clicking on the linkin the “Favorite Places” graphical user interface 1020, 1060 or byclicking on the “Go” button 1030 in the “Favorite Places” graphical userinterface 1020 (step 860). The host 704 responds by providing access tothe desired updated content appearing in the “Favorite Places” controlbased upon the user profile information (step 865). For example, thehost may permit the user 802 a to have access to updated content listedin the “Favorite Places” graphical user interface rather than blockingaccess to that content.

[0076] The techniques, methods and systems described here may findapplicability in any computing, processing or network environment inwhich a user interface provides users with access to content orfunctionality. Various implementations of these systems and techniquesmay be realized in digital electronic circuitry, or in computerhardware, firmware, software, or in combinations thereof.

[0077] A system or other apparatus that uses one or more of thetechniques and methods described here may be implemented as acomputer-readable storage medium, configured with a computer program,where the storage medium so configured causes a computer system tooperate on input and/or generate output in a specific and predefinedmanner. Such a computer system may include one or more programmableprocessors that receive data and instructions from, and transmit dataand instructions to, a data storage system, and suitable input andoutput devices.

[0078] Each computer program may be implemented in a high-levelprocedural or object-oriented programming language, or in assembly ormachine language if desired; and in any case, the language may be acompiled or interpreted language. Suitable processors include, by way ofexample, both general and special purpose microprocessors. Generally, aprocessor will receive instructions and data from a read-only memoryand/or a random access memory.

[0079] Storage devices suitable for tangibly embodying computer programinstructions and data include all forms of non-volatile memory,including semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM disks.

[0080] Any of the foregoing may be supplemented by, or implemented in,specially-designed ASICs (application- specific integrated circuits).

[0081] Furthermore, although a number of implementations have beendescribed, it will be understood that various modifications may be made.For example, a user interface may include dropdown menus (see, forexample, FIG. 9A) or separate windows (see, for example, FIG. 10A).Moreover, the distinction made between an adult and a child in some ofthe described implementations is merely for the purpose of demonstratingthe ability to vary the degree of access to content or authorization tomodify access to content based on an attribute of classification ofusers. For example, other groupings such as student, teacher,administrator, or staff and management may be used in place of age ormaturity. Accordingly, other implementations are within the scope of thefollowing claims.

What is claimed is:
 1. A method of customizing a user interface, themethod comprising: providing several user profiles from which a user maybe associated, each user profile comprising user profile information;accessing the user profile associated with a user to whom a userinterface will be provided; configuring a user interface for the userbased at least in part upon the user profile accessed as beingassociated with the user, the user interface including one or morereferences to content; and enabling access to content based on usermanipulation of the configured user interface.
 2. The method of claim 1in which the user profile information comprises age.
 3. The method ofclaim 1 in which the user profile information comprises a level ofmaturity.
 4. The method of claim 3 in which the level of maturitycomprises a child maturity level.
 5. The method of claim 3 in which thelevel of maturity comprises a young teen maturity level.
 6. The methodof claim 3 in which the level of maturity comprises a mature teenmaturity level.
 7. The method of claim 3 in which the level of maturitycomprises an adult maturity level.
 8. The method of claim 3 in which thelevel of maturity is selected based upon configuration data associatedwith an identity of the user.
 9. The method of claim 1 in whichconfiguring the user interface comprises populating the user interfacewith pre-designated references to content based upon the user profile.10. The method of claim 9 in which enabling access to content comprisesblocking access to other than the pre-designated references.
 11. Themethod of claim 1 in which configuring the user interface comprisesautomatically configuring the user interface.
 12. The method of claim 1in which configuring the user interface comprises configuring the userinterface in response to a user action.
 13. The method of claim 1 inwhich configuring the user interface comprises configuring the userinterface in anticipation of user navigation to the user interface. 14.The method of claim 1 in which configuring the user interface comprisesconfiguring the user interface in response to user navigation to theuser interface.
 15. The method of claim 1 in which enabling access tocontent comprises customizing a set of user interface controls displayedto the user.
 16. The method of claim 1 in which enabling access tocontent comprises customizing a pointer associated with a user interfacecontrol.
 17. The method of claim 16 in which the appearance of the userinterface control is not changed.
 18. The method of claim 1 in which theuser profile information is supplied by a master user.
 19. The method ofclaim 18 in which the user is the master user.
 20. The method of claim 1further comprising storing the user profile.
 21. The method of claim 1further comprising updating the user profile.
 22. The method of claim 21further comprising updating the user interface.
 23. The method of claim1 in which configuring a user interface comprises configuring a userinterface by a host system and enabling access to content comprisesenabling access to content by a host system.
 24. The method of claim 1in which configuring a user interface comprises converting a userinterface control of a first user to a user interface control of asecond user; the first user being associated with a first user profile;and the second user being associated with a second user profile.
 25. Acomputer program for customizing a user interface, the computer programcomprising: a module to provide several user profiles from which a usermay be associated, each user profile comprising user profileinformation; a module to access the user profile associated with a userto whom a user interface will be provided; a module to configure a userinterface for the user based at least in part upon the user profileaccessed as being associated with the user, the user interface includingone or more references to content; and a module to enable access tocontent based on user manipulation of the configured user interface. 26.The computer program of claim 25 in which the user profile informationcomprises age.
 27. The computer program of claim 25 in which the userprofile information comprises a level of maturity.
 28. The computerprogram of claim 27 in which the level of maturity comprises at leastone of a child maturity level, a young teen maturity level, a matureteen maturity level, and an adult maturity level.
 29. The computerprogram of claim 27 in which the level of maturity is selected basedupon configuration data associated with an identity of the user.
 30. Thecomputer program of claim 25 in which the module to configure the userinterface comprises a module to populate the user interface withpre-designated references to content based upon the user profile. 31.The computer program of claim 30 in which the module to enable access tocontent comprises a module to block access to other than thepre-designated references.
 32. The computer program of claim 25 in whichthe module to configure the user interface comprises a module toautomatically configure the user interface.
 33. The computer program ofclaim 25 in which the module to configure the user interface comprises amodule to configure the user interface in anticipation of usernavigation to the user interface.
 34. The computer program of claim 25in which the module to configure the user interface comprises a moduleto configure the user interface in response to user navigation to theuser interface.
 35. The computer program of claim 25 in which the moduleto enable access to content comprises a module to customize a set ofuser interface controls displayed to the user.
 36. The computer programof claim 25 in which the module to enable access to content comprises amodule to customize a pointer associated with a user interface control.37. The computer program of claim 36 in which the appearance of the userinterface control is not changed.
 38. The computer program of claim 25in which the user profile information is supplied by a master user. 39.The computer program of claim 38 in which the user is the master user.40. The computer program of claim 25 further comprising a module tostore the user profile.
 41. The computer program of claim 25 furthercomprising a module to update the user profile.
 42. The computer programof claim 41 further comprising a module to update the user interface.43. The computer program of claim 25 in which the module to configure auser interface comprises a module to configure a user interface by ahost system and the module to enable access to content comprises amodule to enable access to content by a host system.
 44. The computerprogram of claim 25 in which the module to configure a user interfacecomprises a module to convert a user interface control of a first userto a user interface control of a second user; the first user beingassociated with a first user profile; and the second user beingassociated with a second user profile.
 45. A computer program forcustomizing a user interface, the computer program comprising: a moduleto provide several attribute types from which a user may be associated;a module to access an attribute type associated with a user to whom auser interface will be provided; a module to render a first userinterface, in which the first user interface is available for display toa first user having a first attribute type accessed as being associatedwith the first user; and a module to render a second user interface, inwhich the second user interface is available for display to a seconduser having a second attribute type accessed as being associated withthe second user.
 46. The computer program of claim 45 in which the firstattribute type is indicative of an adult maturity level.
 47. Thecomputer program of claim 45 in which the second attribute type isindicative of a child maturity level.
 48. The computer program of claim45 in which the child maturity level includes at least one of a matureteen, a teen, and a pre-teen.
 49. A customized user interfacecomprising: a first user interface available for display to a first userhaving a first attribute type, the first attribute type being one ofseveral attribute types from which a user may be associated, the firstattribute type being associated with the first user and being accessedto provide the user interface; and a second user interface available fordisplay to a second user having a second attribute type, the secondattribute type being one of several attribute types from which a usermay be associated, the second attribute type being associated with thesecond user and being accessed to provide the user interface.
 50. Theuser interface of claim 49 in which the first attribute type isindicative of an adult maturity level.
 51. The method of claim 49 inwhich the second attribute type is indicative of a child maturity level.52. A method of customizing a user interface, the method comprising:providing several user characteristics from which a user may beassociated; accessing a user characteristic associated with a user towhom a user interface will be provided; providing a user interface basedat least in part upon the user characteristic accessed as beingassociated with the user, in which the user interface comprises at leastone control; and enabling access to information or services based on theuser characteristic.
 53. The method of claim 52 in which the usercharacteristic comprises age.
 54. The method of claim 52 in which theuser characteristic comprises a level of maturity.
 55. The method ofclaim 54 in which the level of maturity comprises a child maturitylevel.
 56. The method of claim 54 in which the level of maturitycomprises one of a young teen maturity level, a mature teen maturitylevel, and an adult maturity level.
 57. The method of claim 54 in whichthe level of maturity is selected based upon configuration dataassociated with an identity of the user.
 58. A computer program forcustomizing a user interface, the computer program comprising: a moduleto provide several user characteristics from which a user may beassociated; a module to access a user characteristic associated with auser to whom a user interface will be provided; a module to provide auser interface based at least in part upon the user characteristicaccessed as being associated with the user, in which the user interfacecomprises at least one control; and a module to enable access toinformation or services based on the user characteristic.
 59. Thecomputer program of claim 58 in which the user characteristic comprisesage.
 60. The computer program of claim 58 in which the usercharacteristic comprises a level of maturity.